package com.aplikata.evok.bo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import com.aplikata.bo.User;

/**
 * @ClassName: PatientTherapy
 * @Description: TODO
 * @author Huyun
 * @date 15. 5. 2012. 14:01:09
 */
public class PatientTherapy implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long id;
	private DomainPatient domainPatient;
	private User creator;
	private Date createTime;
	private Date operTime;
	private Date startDate;
	private Date endDate;
	private Integer status;
	private Integer satisfaction;
	private Integer type;
	private String headline;
	private String remarkDoc;
	private String remarkPatient;
	private Integer unit;
	private Float duration;
	private Float price;
	private Integer success;
	private Integer payment;

	private Long patientCommentCount;

	private Set<Therapy> therapies = new HashSet<Therapy>(0);
	private Set<DoctorSchedule> doctorSchedules = new HashSet<DoctorSchedule>(0);
	private Set<PatientQtnaire> patientQtnaires = new HashSet<PatientQtnaire>(0);
	private Set<PatientTherapyNode> patientTherapyNodes = new HashSet<PatientTherapyNode>(0);
	private Set<TherapyService> therapyServices = new HashSet<TherapyService>(0);
	private Set<PatientTherapyAttachment> attachments = new HashSet<PatientTherapyAttachment>(0);
	private Set<PatientTherapyComment> patientTherapyComments = new HashSet<PatientTherapyComment>(0);

	public final static String PATIENT_NAME = "domainPatient.patient.name";
	public final static String PATIENT_SURNAME = "domainPatient.patient.surname";
	public final static String DOCTOR_NAME = "creator.userReference.name";
	public final static String DOCTOR_SURNAME = "creator.userReference.surname";
	public final static String START_DATE = "startDate";
	public final static String END_DATE = "endDate";
	public final static String STATUS = "status";

	public static final String QY_FIND_BY_PATIENT_DOCTOR = "PatientTherapy.findByPatientAndDoctor";

	public static final String QY_FIND_THERAPIES = "PatientTherapy.findTherapies";

	public final static String LB_TYPE = "patient_therapy_type";
	public final static String LB_STATUS = "default_status";
	public final static String LB_START_DATE = "patient_therapy_startDate";
	public final static String LB_END_DATE = "patient_therapy_endDate";
	public final static String MSG_PATIENT_NULL = "patient_therapy_patientnull";

	// Constructors

	/** default constructor */
	public PatientTherapy() {
	}

	public PatientTherapy(User creator) {
		this.creator = creator;
	}

	/** minimal constructor */
	public PatientTherapy(DomainPatient domainPatient, User creator) {
		this.domainPatient = domainPatient;
		this.creator = creator;
	}

	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public User getCreator() {
		return creator;
	}

	public void setCreator(User creator) {
		this.creator = creator;
	}

	public Date getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getOperTime() {
		return this.operTime;
	}

	public void setOperTime(Date operTime) {
		this.operTime = operTime;
	}

	public Date getStartDate() {
		return this.startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return this.endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public Integer getStatus() {
		return this.status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public DomainPatient getDomainPatient() {
		return domainPatient;
	}

	public void setDomainPatient(DomainPatient domainPatient) {
		this.domainPatient = domainPatient;
	}

	public Set<DoctorSchedule> getDoctorSchedules() {
		return doctorSchedules;
	}

	public void setDoctorSchedules(Set<DoctorSchedule> doctorSchedules) {
		this.doctorSchedules = doctorSchedules;
	}

	public Set<Therapy> getTherapies() {
		return therapies;
	}

	public void setTherapies(Set<Therapy> therapies) {
		this.therapies = therapies;
	}

	public Set<PatientQtnaire> getPatientQtnaires() {
		return patientQtnaires;
	}

	public void setPatientQtnaires(Set<PatientQtnaire> patientQtnaires) {
		this.patientQtnaires = patientQtnaires;
	}

	public Set<PatientTherapyNode> getPatientTherapyNodes() {
		return patientTherapyNodes;
	}

	public void setPatientTherapyNodes(Set<PatientTherapyNode> patientTherapyNodes) {
		this.patientTherapyNodes = patientTherapyNodes;
	}

	public Set<TherapyService> getTherapyServices() {
		return therapyServices;
	}

	public void setTherapyServices(Set<TherapyService> therapyServices) {
		this.therapyServices = therapyServices;
	}

	public Integer getSatisfaction() {
		return satisfaction;
	}

	public void setSatisfaction(Integer satisfaction) {
		this.satisfaction = satisfaction;
	}

	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public String getHeadline() {
		return headline;
	}

	public void setHeadline(String headline) {
		this.headline = headline;
	}

	public String getRemarkDoc() {
		return remarkDoc;
	}

	public void setRemarkDoc(String remarkDoc) {
		this.remarkDoc = remarkDoc;
	}

	public String getRemarkPatient() {
		return remarkPatient;
	}

	public void setRemarkPatient(String remarkPatient) {
		this.remarkPatient = remarkPatient;
	}

	public Integer getUnit() {
		return unit;
	}

	public void setUnit(Integer unit) {
		this.unit = unit;
	}

	public Float getDuration() {
		return duration;
	}

	public void setDuration(Float duration) {
		this.duration = duration;
	}

	public Float getPrice() {
		return price;
	}

	public void setPrice(Float price) {
		this.price = price;
	}

	public Set<PatientTherapyAttachment> getAttachments() {
		return attachments;
	}

	public void setAttachments(Set<PatientTherapyAttachment> attachments) {
		this.attachments = attachments;
	}

	public Set<PatientTherapyComment> getPatientTherapyComments() {
		return patientTherapyComments;
	}

	public void setPatientTherapyComments(Set<PatientTherapyComment> patientTherapyComments) {
		this.patientTherapyComments = patientTherapyComments;
	}

	public Integer getSuccess() {
		return success;
	}

	public void setSuccess(Integer success) {
		this.success = success;
	}

	public Integer getPayment() {
		return payment;
	}

	public void setPayment(Integer payment) {
		this.payment = payment;
	}

	public Long getPatientCommentCount() {
		return patientCommentCount;
	}

	public void setPatientCommentCount(Long patientCommentCount) {
		this.patientCommentCount = patientCommentCount;
	}
}